home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1994 March / Internet Info CD-ROM (Walnut Creek) (March 1994).iso / networking / terms / kermit / b / iktker.mss < prev    next >
Encoding:
Text File  |  1992-09-29  |  31.4 KB  |  800 lines

  1. @Part(TSOKERMIT,root="kuser")
  2. @string(-tsoversion="4.2.0")
  3. @string(-tsodate="90/3/13")
  4. @Chapter<IBM MVS/TSO KERMIT>
  5. @Begin<Description,Leftmargin +15,Indent -15,spread 0>
  6. @i(Program:)@\John Chandler (Harvard/Smithsonian Center for
  7. Astrophysics); contributions from
  8. Va@ccd()e Kundak@ccd()i and
  9. Daphne Tzoar (Columbia U),
  10. Bob Shields (U. Maryland),
  11. Greg Small (UC Berkeley),
  12. Bob Bolch and Steve Blankinship (Triangle), Ron Rusnak
  13. (U. Chicago), Charles Painter (U. Toronto),
  14. Roger Fajman and Dale Wright (NIH),
  15. Andr@eac() Pirard (U. Li@egr()ge)
  16.  
  17. @i(Language:)@\IBM/370 Assembler
  18.  
  19. @i(Documentation:)@\John Chandler (CfA)
  20.  
  21. @i(Version:)@\@value(-tsoversion) (@value<-tsodate>)
  22.  
  23. @i(Date: )@\1990 May
  24. @end<Description>
  25.  
  26. @Index(TSO)
  27. @subheading<Kermit-TSO Capabilities At A Glance:>
  28. @begin<format,leftmargin +2,above 1,below 1>
  29. @tabclear()@tabset(3.5inches,4.0inches)
  30. Local operation:@\No
  31. Remote operation:@\Yes
  32. Transfers text files:@\Yes
  33. Transfers binary files:@\Yes
  34. Wildcard send:@\Yes
  35. @q(^X/^Z) interruption:@\Yes (through micro)
  36. Filename collision avoidance:@\Yes
  37. Can time out:@\Yes (line mode only)
  38. 8th-bit prefixing:@\Yes
  39. Repeat count prefixing:@\Yes
  40. Alternate block checks:@\Yes
  41. Terminal emulation:@\No
  42. Communication settings:@\No
  43. Transmit BREAK:@\No
  44. Packet logging:@\Yes
  45. Transaction logging:@\Yes
  46. Session logging:@\No
  47. Raw transmit:@\Yes (no prompts)
  48. Sliding window:@\No
  49. Long packets:@\Yes
  50. Act as server:@\Yes
  51. Talk to server:@\Yes
  52. Advanced server functions:@\Yes
  53. Advanced commands for servers:@\Yes
  54. Local file management:@\Yes
  55. Handle Attribute Packets:@\Yes
  56. Command/init files:@\Yes
  57. Command macros:@\No
  58. @end<format>
  59.  
  60. @subheading<TSO Specifics of Kermit-370:>
  61. @begin<format,leftmargin +2,above 1,below 1>
  62. @tabclear()@tabset(3.5inches,4.0inches)
  63. @Index(Initialization files)@Index(Log files)@Index(LRECL)
  64. Global INIT file:@\@q('SYS1.KERMINI')
  65. User INIT file:@\@q(KERMINI)
  66. Debug packet log:@\@q(KER.LOG)
  67. Server reply log:@\@q(KER.REPLY)
  68. Mail command:@\@q[KERMAIL @i<filespec> LIST(@i<users>)]
  69. Print command:@\@q[KERMPRT @i<filespec> OPTIONS(@i<options>)]
  70. Submit command:@\@q[KERMSUB @i<filespec> OPTIONS(@i<options>)]
  71. Maximum packet size:@\1913 (SERIES1), 1024 (TTY)
  72. Maximum disk LRECL:@\32760
  73. @end<format>
  74.  
  75. @Index(IBM)
  76. @Index(MVS/TSO)@Index(TTY)@Index(Series/1)
  77. Kermit-TSO is a member of the generic Kermit-370 family and shares most
  78. of the features and capabilities of the group.
  79. As its name implies, Kermit-TSO is the
  80. variant of Kermit-370 that runs under the MVS/TSO operating system.
  81. The primary documentation for Kermit-TSO is actually
  82. the chapter on Kermit-370 (entitled IBM 370 Kermit), which
  83. describes general properties; the present chapter assumes the
  84. reader is familiar with that material.  Only the details specific to
  85. TSO operation will be discussed here, @i<e.g.>, command syntax
  86. relating to the TSO file system or commands not offered in general
  87. by Kermit-370.
  88.  
  89.  
  90. @Section<The MVS/TSO File System>
  91.  
  92. The features of the TSO file system of greatest interest to Kermit
  93. users are the format of file specifications (@i<filespecs>)
  94. and the concept of
  95. records.  The latter is described in the Kermit-370 chapter.
  96.  
  97. @Index(Qualifier)
  98. The MVS/TSO @i<filespec> (called the data set name or DSN) takes the form
  99. of tokens (known as qualifiers) of up to 8 alphanumeric characters each,
  100. separated by periods.  Each qualifier must begin with an alphabetic or
  101. national character.  The total length must be no
  102. more than 44 characters, including periods.
  103. To be precise, a DSN may contain uppercase letters, digits, and
  104. the special characters @qq<$> (dollar sign), @qq<#> (number sign),
  105. @qq<@@> (at sign), and @qq<-> (hyphen) in addition to the separating
  106. periods.  Other characters must not be included.
  107.  
  108. @Index(Catalog)
  109. There is another, structural restriction on
  110. data set names from the fact that TSO data sets are all cataloged.
  111. In a standard
  112. MVS catalog, each qualifier of each DSN is associated with an
  113. index of the same name.  The index is a hierarchical
  114. catalog component which points downward either to a list of next-level
  115. indices or to a data set, but never to both.  Consequently, a
  116. cataloged DSN is a chain of indices corresponding one-for-one with
  117. DSN qualifers, and the last index is a pointer to the data set itself.
  118. While there may be many indices with the same name, no two such
  119. duplicates may both be chained to the same next-higher-level index,
  120. so that, if DSN's are considered as strings of qualifiers (not of
  121. characters),
  122. no DSN can be a major substring of any other.
  123. For example, if the name @q<'A.BB.C'> exists in the
  124. catalog, then @q<'A.BB'> and @q<'A.BB.C.X'> are illegal, but @q<'A.B'>,
  125. @q<'A.BB.Y'>, @q<'A.BBB'>, and @q<'A.BB.BB'> are all legal.
  126. Although there is a newer form of catalog, known as IFC, which removes
  127. this substring restriction, it is still good practice to avoid violating
  128. it because there are still sites that use the older form.
  129.  
  130. A DSN given in its entirety (as in the foregoing examples)
  131. is called "fully qualified" and must be enclosed in single
  132. quotes when entered in TSO.  However, by convention (and by definition)
  133. the first qualifier of each data set
  134. belonging to a given user must be the user's logon ID, and, by
  135. default, that ID is the assumed prefix in TSO when a DSN is @i(not)
  136. enclosed in quotes.  In practice, then, names are abbreviated by
  137. omitting the quotes and the prefix.  The most common type of name, in
  138. fact, consists of the prefix plus two more qualifiers giving the
  139. data set's name and type, respectively, so that many files have DSN's
  140. that correspond exactly to the canonical Kermit representation of a
  141. @i(filespec).  For instance, @q<TEST.FORT> is the
  142. source of a Fortran program named TEST, and its fully qualified DSN
  143. would be @q<'@i(userid).TEST.FORT'>, where @i(userid) is the owner's
  144. logon ID.
  145.  
  146. @Index(Partitioned data set)
  147. While this description is complete as far as it goes, it omits an
  148. important feature that is widely used in organizing files under MVS
  149. and TSO, namely, the partitioned data set (PDS).  A PDS is a data set
  150. like any other, except that it has members, each of which can
  151. usually be treated as a file in its own right.  In fact, with QSAM
  152. (the file access method employed by Kermit and many other applications),
  153. only members, and not the whole PDS, may be read or written.  Thus,
  154. the term "file", as used in this chapter and the Kermit-370 chapter, may
  155. refer to either a PDS member or an ordinary data set, but not to a PDS.
  156. The notation for a PDS member consists of the member name enclosed
  157. in parentheses and appended to the DSN (and the whole enclosed in
  158. quotes if the DSN is fully qualified).  For example, if the Fortran
  159. program @q<TEST> were copied into a PDS called @q<DEBUG.FORT>, it
  160. would then be known as
  161. @example<DEBUG.FORT(TEST)>
  162. Although the member name is written together with the DSN, it and the
  163. surrounding parentheses are not really part of the DSN and are not
  164. counted toward the 44-character limit.  Still,
  165. a member name must conform to the rules for a DSN qualifier and, in
  166. addition, must not contain any hyphens.
  167.  
  168. All these properties of DSN's come into play when a file
  169. is being received by Kermit-TSO because a valid DSN must be generated
  170. for the new data set.  For example,
  171. any invalid character in the supplied @i(filespec) is replaced by
  172. a number sign (or converted to uppercase if it is a lowercase letter).
  173. Also, each qualifier (and the member name, if any)
  174. is prefixed with a number sign (if it does not already
  175. begin with an alphabetic or national character) and then
  176. shortened, if necessary, to eight characters.  If
  177. no @i(filespec) is supplied,
  178. Kermit-TSO creates a default DSN of @qq($.$).
  179. The DSN is expanded to
  180. its fully qualified form and then truncated at 44 characters, if need be.
  181.  
  182. The DSN prefix, which defaults to the user's logon ID, is similar
  183. to a device specification on microcomputer systems: it selects an
  184. area of disk storage, and it usually need not be specified.
  185. In some ways, the prefix is also like
  186. a disk directory designator, since the file system structure is
  187. hierarchical.  For this reason, the Kermit
  188. concept of the "working
  189. directory" is equated with a particular DSN prefix under
  190. Kermit-TSO.  The current "working directory" is the
  191. collection of all data sets whose names begin with the current prefix,
  192. and file transfers take place
  193. to and from that area unless a fully qualified DSN is given.
  194.  
  195. To provide compatibility with other operating systems, when Kermit-TSO
  196. sends a file, it ordinarily makes a file header with
  197. only the last two qualifiers of the full DSN (or only the member name
  198. plus the last qualifier in
  199. the case of a PDS member).  On the other hand, extra information
  200. may be added by way of the SET FOREIGN subcommand.
  201.  
  202. Although TSO data sets are cataloged, MVS allows uncataloged data sets
  203. @Index(Uncataloged data sets) as well, and Kermit-TSO can download
  204. such files, as long as the user specifies the proper disk volume
  205. via the SET FILE VOLUME subcommand.  In principle, uncataloged
  206. data sets may have names with illegal characters or qualifiers longer
  207. than 8 characters, but such names are not recognized by Kermit-TSO.
  208.  
  209. @Index(Wildcards)
  210. Kermit-TSO allows a group of files to be specified in a single
  211. @i(filespec) by including the special
  212. "wildcard" character @qq<*>, which
  213. matches any string of characters (even a null
  214. string) anywhere either in the DSN proper or in the member name, if any.
  215. Only one @q(*) may be used in
  216. a @i(filespec).
  217. Here are some examples:
  218.  
  219. @Begin(Description,spread 0.5,leftmargin +18, indent -16)
  220. @q<*.COBOL>@\All files of type @q<COBOL> (all COBOL source files) in
  221. the current working directory.
  222.  
  223. @q<BATCH*H.FORT>@\All files in the current directory which begin
  224. with @q(BATCH) and which end with @q(H.FORT).  This would
  225. not include @q(BATCH.FORT), however.
  226. @End(Description)
  227.  
  228. TSO files, like those in other IBM 370 systems, are record-oriented
  229. (see the introduction to the Kermit-370 chapter).
  230. In particular, TSO files are characterized by record
  231. format (RECFM), which may be fixed-length,
  232. varying-length, or undefined-length;
  233. by maximum record length (LRECL); and
  234. by maximum block size (BLKSIZE).  Fixed-length
  235. and varying-length records
  236. can be (and, under Kermit, always are) combined into
  237. blocks, but undefined-length records cannot.  Indeed, by convention,
  238. they have no logical record length, only a maximum block size.
  239. Records (and blocks) in TSO files may be up to 32760 bytes
  240. long, but varying-length record blocks
  241. use four bytes to specify the block length
  242. and, therefore, place an effective limit of 32756 on the records.
  243. Indeed, the data portion of such records is limited to 32752 bytes.
  244.  
  245. Another file system feature of occasional interest is the means of
  246. reporting errors.  When Kermit-TSO encounters a disk error, it attempts
  247. to prepare an explanatory message for inclusion in the @q(STATUS)
  248. report.  The primary method is the standard @q(SYNADAF) macro.
  249.  
  250. MVS/TSO allows, but does not encourage, the use of passwords
  251. @Index(Passwords) to protect individual data sets.  When a password
  252. is needed for file access, it is entered immediately after the
  253. @i(filespec), separated only by a slash (@qq</>).  In the case of a
  254. fully-qualified DSN, the password must be after the closing quotation
  255. mark.
  256.  
  257. @Section<Program Operation>
  258.  
  259. @Index(Initialization files)
  260. At startup time, Kermit-TSO looks for two initialization
  261. files, @q('SYS1.KERMINI') and @q(')@i(userid)@q(.KERMINI')
  262. (where, as before, @i(userid) is the user's
  263. logon ID).  The latter file would also be known as just @q(KERMINI).
  264. The file @q('SYS1.KERMINI') would be maintained
  265. by a systems programmer, but
  266. @q(KERMINI) would be maintained by the user.
  267.  
  268. @Index(User profile)
  269. Three parameters in the user's profile (the character delete and line
  270. delete and intercom) are disabled
  271. during protocol mode
  272. (and restored afterwards) to prevent any conflict in case either of
  273. these characters has been defined to be printable.
  274. The settings in effect when Kermit starts up are saved as a sort of
  275. "normal" status snapshot (as opposed to the "protocol" status just
  276. described).  The protocol status is selected whenever
  277. Kermit enters protocol mode, and the normal status is selected when
  278. Kermit leaves protocol mode.  Note: if Kermit is
  279. interrupted in the midst of a transfer or while in server mode, these
  280. parameters will be left with peculiar settings (namely, the protocol
  281. status), and they may need
  282. to be restored by hand.
  283.  
  284. Although TSO does not allow an application program to take control of
  285. terminal synchronization on @qq(TTY) lines, the various full-screen
  286. emulation front ends
  287. are quite a different matter.  The standard IBM handshake (XON) is
  288. unnecessary, for example, with a 7171 or 4994 because the front end
  289. itself turns the line around with essentially no delay in transparent
  290. mode.  Thus, handshaking should be suppressed for @qq(SERIES1) devices
  291. (the micro Kermit should have
  292. HANDSHAKE set OFF, and Kermit-TSO should have HANDSHAKE set to 0).
  293. Since the generic Kermit-370 default handshake (XON) is retained in
  294. Kermit-TSO, the subcommand @qq(SET HANDSHAKE 0) is a good candidate
  295. for inclusion the KERMINI file of any user who habitually uses
  296. @qq(SERIES1) lines.
  297.  
  298. @subheading(Interactive Operation:)
  299.  
  300. To run Kermit-TSO interactively, invoke the program from TSO by
  301. typing @q<KERMIT>.  When you see the prompt,
  302. @example(Kermit-TSO>)
  303. you may type a Kermit subcommand.  When the subcommand completes, Kermit
  304. issues another prompt.  The cycle repeats
  305. until you exit from the program.  For example:
  306. @Begin(Example)
  307. .@ux(KERMIT)
  308.  
  309. Kermit-TSO Version @value(-tsoversion) (@value<-tsodate>)
  310. Enter ? for a list of valid commands
  311.  
  312. Kermit-TSO>@ux(send foo.*)
  313.  
  314.   @i(Files beginning with FOO are sent)
  315.  
  316. Kermit-TSO>@ux(receive test.spss)
  317.  
  318.   @i(File is received and called TEST.SPSS)
  319.  
  320. Kermit-TSO>@ux(exit)
  321. @end(example)
  322.  
  323. @subheading(Command Line Invocation:)
  324.  
  325. Kermit-TSO may also be invoked with command line arguments from TSO.
  326. The arguments are interpreted as a subcommand to be executed
  327. by Kermit after completion of the initialization.
  328. For instance:
  329. @Begin(Example)
  330. .@ux(KERMIT send test.fort)
  331. @End(Example)
  332.  
  333. Kermit will exit and return to TSO after completing the specified
  334. subcommand.
  335.  
  336. @subheading(CLIST Operation:)
  337. @Index(CLIST)
  338.  
  339. Like other TSO programs, Kermit-TSO may be invoked from a CLIST.
  340. Subcommands can be passed to Kermit using the program input stack
  341. and/or command line arguments.  For example, to start up Kermit-TSO
  342. and have it act as a server, include the line:
  343. @Begin(Example)
  344. @ux(KERMIT server)
  345. @End(Example)
  346. To pass more than one subcommand, they must be stacked in the order in
  347. which they are to be executed.  To start up a Kermit-TSO server with a
  348. three character CRC, create and stack a file with the following:
  349. @Begin(Example)
  350. @ux(set block 3)
  351. @ux(server)
  352. @End(Example)
  353. and then invoke Kermit.  Like many utility programs, Kermit-TSO uses
  354. the GETLINE/PUTLINE
  355. service routines for terminal I/O, and the nominally
  356. interactive subcommands can thus be supplied under program control.
  357. Another way of setting up multiple subcommands would be to collect the
  358. subcommands into a TAKE file and then issue the TAKE subcommand via the
  359. command line.
  360. CLIST's may be executed from Kermit, either directly or from
  361. a TAKE file, and CLIST's in turn may freely issue Kermit subcommands.
  362. The subcommand KERMIT is especially useful in this context for
  363. distinguishing Kermit subcommands from TSO commands.
  364.  
  365. @subheading(Server mode:)
  366.  
  367. Command execution in server mode is different in several respects
  368. from normal operation.  First of all, some Kermit subcommands
  369. are not allowed (see the list of subcommands in the Kermit-370 chapter).
  370. Moreover, command errors
  371. always terminate any active TAKE file.
  372. @Index(User profile)
  373. Also, commands run in a
  374. special environment with the User Profile temporarily modified.
  375. Another difference is that Kermit intercepts
  376. terminal I/O as much as possible and transmits the data to the local
  377. Kermit as text packets.  The problem with this redirection is that
  378. some MVS/TSO commands issue terminal I/O directly, so
  379. that many messages never appear to the local Kermit (except, perhaps,
  380. as bad packets).
  381.  
  382. @Section<Kermit-TSO Subcommands>
  383.  
  384. Kermit-TSO supports all the subcommands
  385. described in the
  386. Kermit-370 chapter.  In addition, there is the system-specific
  387. subcommand @qq(TSO), which is just a synonym for
  388. the generic subcommand @qq(HOST).  @qq(TSO)
  389. can be issued as a remote Kermit command when Kermit-TSO
  390. is in server mode.  Also, the @qq(END) subcommand is available as a
  391. synonym for @qq(EXIT) and @qq(QUIT).
  392.  
  393. This section concentrates on
  394. the subcommands that have special form or meaning for Kermit-TSO.
  395. These are ordered alphabetically.
  396. See the chapter on Kermit-370 for further details.
  397.  
  398. @Heading(The CWD Subcommand)
  399. @Index(CWD)@Index(Prefix)
  400.  
  401. Syntax:@q< CWD [@i(string or PDSname)()]>
  402.  
  403. @Index(User profile)
  404. The CWD (Change Working Directory)
  405. subcommand establishes a new default DSN prefix or turns prefixing off.
  406. This facility is similar to, but not quite the same as, the prefix
  407. defined in the User Profile.  The
  408. @i(string), if specified, must consist of one or more DSN qualifiers,
  409. and the first must already be an index
  410. in the disk catalog.  Subsequent file transfers
  411. take place to and from the corresponding disk area whenever a fully
  412. qualified DSN (one enclosed in quotes) is not given.  The initial
  413. prefix is the user's logon ID, @i<i.e.>, the same as the default prefix
  414. in the User Profile.  If no prefix is given in this subcommand, then
  415. prefixing is no longer performed.  The user must be careful to
  416. remember the distinction between the prefix defined for Kermit and that
  417. for TSO.  Pure Kermit subcommands (like @q<SEND> and @q<TAKE>) always
  418. use the former, but TSO commands (and the TSO-related subcommand
  419. @q<TYPE>) use the latter.
  420.  
  421. An alternative form of the CWD subcommand allows specifying the full (but
  422. unquoted) name of a PDS followed by paired parentheses.  When such a
  423. "working directory" is in use, a @i(filespec) other than a fully
  424. qualified DSN is taken to be a member name within the PDS.  For
  425. that reason, this form should be used cautiously, since the Kermit-TSO
  426. log @i(filespecs) (such as @q<KER.LOG> and @q<KER.REPLY>) would be
  427. treated the same way.  In particular, it is advisable to turn on debug
  428. mode only when the Kermit prefix is a partially qualified DSN (once
  429. started, the log continues to the same data set regardless of what
  430. happens to the prefix).
  431.  
  432. @Heading(The DIRECTORY Subcommand)
  433. @Index(DIRECTORY)
  434.  
  435. Syntax:@q< DIRECTORY [@i(filespec)]>
  436.  
  437. The DIRECTORY subcommand uses the TSO LISTCAT command to display part
  438. of the data set catalog, @i<i.e.>, all data sets whose names begin
  439. with the
  440. qualifiers in the Kermit prefix (if any) concatenated with the given
  441. @i(filespec) (if any).  Note: wildcards may not be used, and no options
  442. are allowed.  If you require the LISTCAT options, you
  443. must issue a TSO LISTCAT command directly.
  444.  
  445. @Heading(The HELP Subcommand)
  446. @Index(HELP)
  447.  
  448. Syntax:@q< HELP [@i(subcommand)]>
  449.  
  450. The HELP subcommand uses TSO HELP facilities to display part or all
  451. of the Kermit help file.  It follows the same syntax.
  452.  
  453. @Heading<The RECEIVE Subcommand>
  454.  
  455. @Index(RECEIVE)
  456. Syntax:@q< RECEIVE [@i(filespec)]>
  457.  
  458. The RECEIVE subcommand tells Kermit to receive a file or file group
  459. from the other system.  You must issue the corresponding
  460. SEND subcommand to the
  461. other Kermit.
  462.  
  463. A @i(filespec) in the subcommand indicates what name the incoming file
  464. should be given.  Wildcards may not be used.
  465. If the @i(filespec) is invalid, Kermit-TSO will suppress the transfer.
  466. If the optional @i(filespec) is omitted (and, in any case, for all files
  467. after the first in a group) Kermit-TSO will use the
  468. name(s) provided by the other Kermit.  If a name is not a legal
  469. DSN, Kermit-TSO will delete excess characters, change illegal
  470. characters to number signs, and so on, to create a legal name.
  471.  
  472. For the purposes of folding and truncation, the maximum record
  473. length, @i(i.e.), the limit on the length of data in each record,
  474. is "LRECL" if RECFM is F, "LRECL"-4 if RECFM is V, and "BLKSIZE"
  475. if RECFM is U.
  476. @Index(Truncation)@Index(Folding)
  477.  
  478. @Index(Filename collision)
  479. If the incoming file has the same name as an existing file
  480. (either a data set or a PDS member), the action taken
  481. depends on the FILE COLLISION setting.  The possible settings
  482. and their meanings are given in the Kermit-370 chapter.  Two of the
  483. settings (BACKUP and RENAME) require that
  484. Kermit-TSO change the incoming name
  485. so as not to obliterate the pre-@|existing file.  It attempts to find
  486. a unique name by successively modifying the original and checking for
  487. the existence of such a file at each step.  The procedure operates on
  488. the second qualifier of the full DSN (or the member
  489. name in the case of a PDS member) and
  490. begins by truncating it
  491. to seven characters, if necessary, and
  492. then appends @qq(0).  If a file by that name exists,
  493. Kermit then replaces the @qq(0) with a @qq(1).
  494. It continues in this manner up to @qq(9), and if an unused name cannot
  495. be found, the transfer fails.
  496. If FILE COLLISION has not been set, but the obsolete option WARNING
  497. has been set ON, however, Kermit-TSO will protect an existing
  498. file in a different way when the @i(filespec) is entered with the
  499. RECEIVE subcommand.  In that case,
  500. Kermit will prompt the user for permission to overwrite
  501. the file.
  502.  
  503. @Heading<The SEND Subcommand>
  504. @Index(SEND)
  505.  
  506. Syntax:@q{ SEND [@i(filespec)[<@i(options)>] [@i(foreign-filespec)]][, ...]}
  507.  
  508. The SEND subcommand causes a file or file group to be sent from TSO
  509. to the Kermit on the other system.  DSN prefixing is done on the
  510. @i(filespec) in the usual way
  511. (see also the CWD subcommand).  For details on the @i(options), see the
  512. chapter on Kermit-370.  Note that a @i(filespec) may have both a
  513. password and options -- in that case, the options must be at the
  514. very end.  Blanks may not appear anywhere in the string.
  515.  
  516. @Index(Wildcards)
  517. The @i(filespec) may contain a wildcard @qq<*>.  If it does,
  518. then all matching files will
  519. be sent, up to 711 files in all (possibly more in the case of PDS
  520. members).
  521.  
  522. The @i(foreign-filespec), if any, is used for the file header of the
  523. outgoing file, replacing the usual name.type derived from the
  524. MVS/TSO @i(filespec).
  525. Normally, this form of the SEND subcommand is used only for single files
  526. because the @i(foreign-filespec) is used only for the first file of a
  527. group (subsequent files having default headers).
  528. If both @i(filespecs) are omitted for this subcommand, Kermit will
  529. prompt separately for each, and the respective syntaxes are exactly
  530. as described above.
  531. This prompting mode is especially useful when more than one file
  532. (or file group) is to be sent, since the command line is limited
  533. to 130 characters.
  534.  
  535. @Index(Trailing blanks, preserving)
  536. Trailing blanks in a text file with RECFM=F are deemed superfluous and
  537. are stripped off when Kermit-TSO downloads the file.  In order to treat
  538. such blanks as significant, you must convert the record format to V,
  539. for example, by using TSO COPY with the "RECFM V" option.
  540.  
  541. @Heading<The SET Subcommand>
  542. @Index(SET)
  543.  
  544. Syntax:@q< SET @i(parameter) [@i(value)]>
  545.  
  546. The SET subcommand establishes or modifies various parameters controlling
  547. file transfers.
  548. The following SET
  549. parameters are available in
  550. Kermit-TSO, but not in Kermit-370 in general:
  551. @Begin(Format,spread 0)
  552. @tabclear()@tabset(2.0inches)
  553. DELIM@\Line delimiter for entering multiple commands.
  554. FILE
  555.   BLKSIZE@\Block size for incoming file.
  556.   LRECL@\Logical Record length for incoming file.
  557.   RECFM@\Record format for incoming files.
  558.   SPACE@\Allocation unit (in tracks) for incoming files.
  559.   UNIT@\Device type for incoming files.
  560.   VOLUME@\Disk pack for incoming files.
  561. PREFIX@\Default disk area.
  562. @End(format)
  563.  
  564. @Subheading(SET DELIM)@Index(Line delimiter)
  565.  
  566. Syntax:@q< SET DELIM [@i(letter)]>
  567.  
  568. This sets (or clears) a command line delimiter for interactive
  569. Kermit subcommands.  Each occurrence of the delimiter character in
  570. the command buffer read from the terminal is treated as the start of
  571. a new subcommand.  The initial value is a blank, @i<i.e.>, no delimiter.
  572.  
  573. @Subheading(SET FILE BLKSIZE)
  574. @Indexentry(key="DCB",entry="DCB.  @i<See> File attributes")
  575. @Indexentry(key="Data set",entry="Data set.  @i<See> File")
  576.  
  577. Syntax:@q< SET FILE BLKSIZE @i(number)>
  578.  
  579. This sets the block size for incoming files to a @i(number)
  580. from 1 to 32760.  In the case of fixed-format files, this number is just
  581. an upper bound; the actual block size is taken to be the largest
  582. multiple of the LRECL which does not exceed this limit.
  583. The default is 6233.
  584.  
  585. @Subheading(SET FILE LRECL)
  586.  
  587. Syntax:@q< SET FILE LRECL @i(number)>
  588.  
  589. This sets the effective logical record length for incoming files to a
  590. @i(number) from 1 to 32760.  This parameter is not used for files of
  591. undefined record format.
  592. The default is 80.
  593.  
  594. @Subheading<SET FILE RECFM>
  595.  
  596. Syntax:@q< SET FILE RECFM @i(option)>
  597.  
  598. This sets the record format to use for incoming files.  Valid
  599. @i<options> are
  600. "Fixed", "Varying" (the default), and "Undefined".
  601. This parameter is thus limited to a subset of the range of
  602. possibilities for the MVS/TSO RECFM.  In Kermit-TSO, all incoming files
  603. of fixed or varying format are automatically blocked according to the
  604. current block size.
  605.  
  606. Note: the most common files with RECFM=U, load modules, cannot be
  607. transported directly using Kermit, since they contain disk-location
  608. pointers.  Such files can be "unloaded" using IEHMOVE and then
  609. transmitted freely.
  610. @Index(Load modules)
  611.  
  612. @Subheading<SET FILE SPACE>
  613.  
  614. Syntax:@q< SET FILE SPACE @i(number)>
  615.  
  616. This sets the track allocation unit for incoming files to a number from
  617. 1 to 32760.  The default is 5.  Since data sets are allowed as many as
  618. 15 extents, this default provides for files up to 75 tracks.
  619.  
  620. @Subheading<SET FILE UNIT>
  621.  
  622. Syntax:@q< SET FILE UNIT @i(type)>
  623.  
  624. This sets the device type or group for incoming files.  Valid
  625. @i<types> are installation-dependent.  The default is blank, which
  626. signifies the default UNIT group found in the User Attribute Data Set.
  627. This parameter should generally be left blank unless the user wishes to
  628. create files on a specific disk volume not included in the default
  629. group (for example, a private volume).
  630.  
  631. @Subheading<SET FILE VOLUME>
  632.  
  633. Syntax:@q< SET FILE VOLUME @i(name)>
  634.  
  635. This sets the disk volume for incoming files.  Valid @i<names> are
  636. installation-dependent, but are, in any case, no more than six
  637. alphanumeric characters.  The default is blank (none); in that
  638. case, the system chooses one of the available volumes of the
  639. current UNIT type.
  640.  
  641. @Subheading<SET PREFIX>
  642. @Index(Prefix)
  643.  
  644. Syntax:@q< SET PREFIX [@i(string)]>
  645.  
  646. This subcommand is equivalent to the CWD subcommand (@i<q.v.>).
  647.  
  648. @Heading<The TAKE Subcommand>
  649. @Index(TAKE)@Index(GIVE)
  650.  
  651. Syntax:@q< TAKE @i(filespec)>
  652.  
  653. Execute Kermit subcommands from the specified file.  The default
  654. DSN extension is @qq(TAKE), so that datasets with names of the
  655. form @i(prefix.name).@q(TAKE) can be executed by typing merely
  656. @ux(TAKE @i<name>).  Names that end with @q(.TAKE) or @q(.KERMINI) are
  657. accepted as entered (aside from prefixing), and names in quotes are, of
  658. course, accepted exactly as entered,
  659. but all others are assumed to have a DSN
  660. extension of @q(.TAKE) for the purposes of the TAKE (and GIVE)
  661. subcommands.
  662.  
  663. @Heading(The TSO Subcommand)
  664.  
  665. Syntax:@q< TSO @i(text of command)>
  666.  
  667. Although Kermit-TSO does not have a full set of its own
  668. subcommands for managing
  669. TSO files, it provides those services through the operating system.
  670. You can issue any TSO command, @i<e.g.>, to
  671. list, type, rename or
  672. delete files, send messages, and so on.
  673. The @q(TSO) subcommand under Kermit is
  674. synonymous with the @q(HOST) subcommand.
  675.  
  676. @Section<How to build an executable Kermit-TSO>
  677.  
  678. Before attempting to build Kermit-TSO, look in the
  679. Kermit distribution under IKTKER for an
  680. installation document, as well as "beware", help, and update files, and
  681. read them first.  They will probably contain information that is more
  682. current than what you see here.
  683.  
  684. Kermit-TSO consists at present of a large assembly
  685. (KERMIT.ASM, containing the Kermit program) and a small
  686. one (DYNALC.ASM, containing a subroutine for allocating data sets).
  687. Although DYNALC is a single file in the Kermit distribution, the
  688. source for Kermit itself is in many pieces, some generic for Kermit-370
  689. and some specific to TSO.  All the necessary pieces are sequenced in
  690. columns 73-80 so that the numbers form a strictly increasing
  691. sequence when the pieces are correctly "pasted" together.
  692. It is important to preserve the original sequence numbers so that
  693. updates, if any, can be applied to the source.
  694.  
  695. To create a runnable version (the hard way):
  696.  
  697. @begin(enumerate,spread 0.5)
  698. Combine the following @qq(ASM) files from the Kermit distribution into
  699. a single file with @q<RECFM=F(B)> and @q<LRECL=80>: IK0DOC, IK0MAC,
  700. IKTMAC, IK0DEF, IK0MAI, IK0COM, IK0CMD, IKTUTL, and IK0PRO.
  701. The resulting file is the composite source for Kermit-TSO, called
  702. KERMIT.ASM.  This source must retain the original sequence numbers
  703. in columns 73-80 (in other words, be sure not to resequence the source
  704. accidentally by using the editor!)
  705.  
  706. Copy or rename IKTDYN.ASM from the Kermit distribution
  707. to a file called
  708. DYNALC.ASM with @q<RECFM=F(B)> and @q<LRECL=80>.
  709.  
  710. Assemble the source file(s).
  711.  
  712. Create the executable load module @q<KERMIT> using the linkage editor.
  713. Be sure to specify the REUS option.
  714. Kermit is designed to run as a command processor, and so it must be
  715. placed in SYS1.CMDLIB or in a PDS concatenated to SYS1.CMDLIB (for
  716. example, via the STEPLIB command).
  717.  
  718. @end(enumerate)
  719. To create a runnable version the easy way, extract the batch job from
  720. the installation document, supply a proper JOB card, and submit it.
  721.  
  722. @Index(Initialization files)@Index(Translation tables)
  723. If your site's ASCII/EBCDIC translation table
  724. for TTY lines does not conform
  725. to the one listed in the appendix (which in turn conforms to the
  726. one given in the IBM System/370 Reference Summary), then enter
  727. the appropriate SET ATOE/ETOA/TATOE/TETOA
  728. subcommands into @q('SYS1.KERMINI').
  729. @i<NOTE:> If the ASCII/EBCDIC translation is not invertible,
  730. Kermit will not and cannot work.
  731.  
  732. In order to verify the operation of a new version of Kermit-TSO, you may
  733. run it under TEST using the CP parameter.
  734.  
  735. @Section<What's New>
  736. Below is a list of the TSO-specific features in Version
  737. @value(-tsoversion) of Kermit-TSO added since the previous major
  738. release, Version 4.1 in January 1989.
  739. For the list of generic additions, see the chapter on Kermit-370.
  740.  
  741. @begin(enumerate,spread 0.5)
  742. Implicit CLIST invocation now supported.
  743.  
  744. Missing host commands no longer result in ABEND's.  Kermit simply
  745. returns an "invalid host command" indication.
  746.  
  747. Migrated data sets are automatically recalled, if possible, before
  748. attempting to use them.  This includes especially the initialization
  749. files.
  750.  
  751. Sending PDS members by wildcard has been re-enabled.
  752.  
  753. The "MOD" date, as defined by ASM2 package, is now used (if it exists)
  754. instead of the creation date for sending the date attribute.
  755.  
  756. Host commands may now be up to 256 bytes long and be mixed-case.
  757.  
  758. NOINTERCOM is set during transfers.
  759.  
  760. Avoid truncating foreign filespec for GET/SEND.
  761.  
  762. Automatic detection of VTAMTTY as opposed to plain TTY.
  763.  
  764. TTY-mode timeouts now work under MVS/XA and MVS/ESA.
  765.  
  766. Kermit HELP subcommand now works more than once per session.
  767.  
  768. @end(enumerate)
  769.  
  770. @Section(What's Missing)
  771.  
  772. Work on Kermit-TSO will continue.  Features that need to be
  773. improved or added include:
  774. @begin(itemize)
  775. Add support for IBM 3174 AEA transparent mode.
  776.  
  777. Intercept ABEND's in TSO commands executed under Kermit.
  778.  
  779. Implement file archiving.
  780.  
  781. Add a SET REPEAT subcommand.
  782.  
  783. Finish SET LINE, so that Kermit-TSO can be used as a local
  784. Kermit, connecting to a remote host over an alternate
  785. communication port.  Add a CONNECT subcommand.
  786.  
  787. Compute file size for outgoing A-packets and implement the SPACE
  788. subcommand.
  789.  
  790. Reject files known (via A-packets) to be too big for available storage.
  791.  
  792. Intercept @i(all) terminal output during protocol mode.
  793.  
  794. @end(itemize)
  795.  
  796. Anyone interested in working on these or other improvements should first
  797. get in touch with the Center for Computing Activities at Columbia
  798. University to find out if someone else has already begun a similar
  799. project (and, if so, who).
  800.